package com.quanyan.place.entity.apireq;

import com.quanyan.BaseRequest;
import com.quanyan.assets.response.RespCoupon;
import com.quanyan.orderpay.request.ReqPayInfo;
import com.quanyan.place.entity.apiresp.RespPlaceUserInfo;
import com.quanyan.place.entity.vo.PlaceMemberCardVo;

import javax.validation.constraints.NotNull;

import java.math.BigDecimal;
import java.util.List;

/**
 * Created by zhaohui on 2016/10/12.
 */
public class ReqPlaceTicketInfo  extends BaseRequest {
    private BigDecimal orderAmount;
    @NotNull
    private Integer placeId;

    private Integer categoryId;

    private Long chooseDate;

    //@NotNull
    private Integer uid;

   // private Integer payId;

    private List<ReqPayInfo> payInfos;

    private List<ReqTicketPayInfo> ticketPayInfos;

    private String mobile;

    private String verificationCode;

    private String token;

    private Integer cityId;

    private String orderNo;

    private String subjectURL;

    private RespPlaceUserInfo userInfo;

    private String describe;

    private String openId;

    private Byte sourceType;

    private Integer callbackType;

    private String cardNo;

    private String APPVersion;

    private String no;
    private PlaceMemberCardVo placeMemberCardVo;

    private Byte cardType;
    private Integer totalCounts;

    boolean onlyUseCouponPay = false;

    boolean isVip;


    private Integer isUseFirst;

    private String showURLForH5;// 商品展示网址 用户付款中途退出返回商户网站的地址。(支付宝)

    private String returnUrlForH5; //页面跳转同步通知页面路径 支付宝处理完请求后，当前页面自动跳转到商户网站里指定页面的http路径。（支付宝）

    private Integer isSendMsg = 0;

    private BigDecimal disCountBeforeAmount;

    private BigDecimal disCountAfterAmount;

    private BigDecimal primePrice;//订单原价

    private boolean isCouponPay;

    private Integer mchId; //城市ID / 与城市关联的账户ID. 固定传2. 微信小程序（4）
    private String result; //WAIT_BUYER_PAY   PAY_SUCCESS

    private Integer salePlanId;

    private Byte memberType = 0;//是否为会员  0：非会员 1：会员

    private Byte useType;//订单类型：0：开单 1：包场 2：门票 3：app开单 4：多种经营 5:开卡 6:充值
    private Byte businessType;// 交易类型：0：支付 1：退款
    private Integer ticketCount;
    private BigDecimal amount;//实际支付金额
    private Byte platform;//订单平台  1:IOS 2: ANDROID 3 :WEIXIN 4 :H5 5:后台

    private Integer serviceSwitch = 0;

    //优惠卷编码
    private String subjectCode;
    //优惠卷
    private RespCoupon respCoupon;

    //商品原价
    private BigDecimal debit;
    
    public RespCoupon getRespCoupon() {
		return respCoupon;
	}

	public void setRespCoupon(RespCoupon respCoupon) {
		this.respCoupon = respCoupon;
	}

	public String getSubjectCode() {
		return subjectCode;
	}

	public void setSubjectCode(String subjectCode) {
		this.subjectCode = subjectCode;
	}

	public Integer getPlaceId() {
        return placeId;
    }

    public void setPlaceId(Integer placeId) {
        this.placeId = placeId;
    }

    public Integer getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Integer categoryId) {
        this.categoryId = categoryId;
    }

    public Long getChooseDate() {
        return chooseDate;
    }

    public void setChooseDate(Long chooseDate) {
        this.chooseDate = chooseDate;
    }

    public Integer getUid() {
        return uid;
    }

    public void setUid(Integer uid) {
        this.uid = uid;
    }

   // public Integer getPayId() {
   //     return payId;
   // }

    ///public void setPayId(Integer payId) {
    //    this.payId = payId;
    //}

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getVerificationCode() {
        return verificationCode;
    }

    public void setVerificationCode(String verificationCode) {
        this.verificationCode = verificationCode;
    }

   public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public Integer getCityId() {
        return cityId;
    }

    public void setCityId(Integer cityId) {
        this.cityId = cityId;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getSubjectURL() {
        return subjectURL;
    }

    public void setSubjectURL(String subjectURL) {
        this.subjectURL = subjectURL;
    }

    public RespPlaceUserInfo getUserInfo() {
        return userInfo;
    }

    public void setUserInfo(RespPlaceUserInfo userInfo) {
        this.userInfo = userInfo;
    }

    public String getDescribe() {
        return describe;
    }

    public void setDescribe(String describe) {
        this.describe = describe;
    }

    public String getOpenId() {
        return openId;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }

    public Byte getSourceType() {
        return sourceType;
    }

    public void setSourceType(Byte sourceType) {
        this.sourceType = sourceType;
    }

   public Integer getCallbackType() {
        return callbackType;
    }

    public void setCallbackType(Integer callbackType) {
        this.callbackType = callbackType;
    }

    public String getCardNo() {
        return cardNo;
    }

    public void setCardNo(String cardNo) {
        this.cardNo = cardNo;
    }

    public String getAPPVersion() {
        return APPVersion;
    }

    public void setAPPVersion(String APPVersion) {
        this.APPVersion = APPVersion;
    }

    public List<ReqTicketPayInfo> getTicketPayInfos() {
        return ticketPayInfos;
    }

    public void setTicketPayInfos(List<ReqTicketPayInfo> ticketPayInfos) {
        this.ticketPayInfos = ticketPayInfos;
    }

    public List<ReqPayInfo> getPayInfos() {
        return payInfos;
    }

    public void setPayInfos(List<ReqPayInfo> payInfos) {
        this.payInfos = payInfos;
    }

    public BigDecimal getOrderAmount() {
        return orderAmount;
    }

    public void setOrderAmount(BigDecimal orderAmount) {
        this.orderAmount = orderAmount;
    }

    public PlaceMemberCardVo getPlaceMemberCardVo() {
        return placeMemberCardVo;
    }

    public void setPlaceMemberCardVo(PlaceMemberCardVo placeMemberCardVo) {
        this.placeMemberCardVo = placeMemberCardVo;
    }

    public String getNo() {
        return no;
    }

    public void setNo(String no) {
        this.no = no;
    }

    public Integer getTotalCounts() {
        return totalCounts;
    }

    public void setTotalCounts(Integer totalCounts) {
        this.totalCounts = totalCounts;
    }

    public Byte getCardType() {
        return cardType;
    }

    public void setCardType(Byte cardType) {
        this.cardType = cardType;
    }

    public boolean isOnlyUseCouponPay() {
        return onlyUseCouponPay;
    }

    public void setOnlyUseCouponPay(boolean onlyUseCouponPay) {
        this.onlyUseCouponPay = onlyUseCouponPay;
    }

    public boolean isVip() {
        return isVip;
    }

    public void setVip(boolean isVip) {
        this.isVip = isVip;
    }

    public Integer getIsUseFirst() {
        return isUseFirst;
    }

    public void setIsUseFirst(Integer isUseFirst) {
        this.isUseFirst = isUseFirst;
    }

    public String getShowURLForH5() {
        return showURLForH5;
    }

    public void setShowURLForH5(String showURLForH5) {
        this.showURLForH5 = showURLForH5;
    }

    public String getReturnUrlForH5() {
        return returnUrlForH5;
    }

    public void setReturnUrlForH5(String returnUrlForH5) {
        this.returnUrlForH5 = returnUrlForH5;
    }

    public Integer getIsSendMsg() {
        return isSendMsg;
    }

    public void setIsSendMsg(Integer isSendMsg) {
        this.isSendMsg = isSendMsg;
    }

    public BigDecimal getDisCountBeforeAmount() {
        return disCountBeforeAmount;
    }

    public void setDisCountBeforeAmount(BigDecimal disCountBeforeAmount) {
        this.disCountBeforeAmount = disCountBeforeAmount;
    }

    public BigDecimal getDisCountAfterAmount() {
        return disCountAfterAmount;
    }

    public void setDisCountAfterAmount(BigDecimal disCountAfterAmount) {
        this.disCountAfterAmount = disCountAfterAmount;
    }

    public BigDecimal getPrimePrice() {
        return primePrice;
    }

    public void setPrimePrice(BigDecimal primePrice) {
        this.primePrice = primePrice;
    }

    public boolean isCouponPay() {
        return isCouponPay;
    }

    public void setCouponPay(boolean isCouponPay) {
        this.isCouponPay = isCouponPay;
    }

    public Integer getMchId() {
        return mchId;
    }

    public void setMchId(Integer mchId) {
        this.mchId = mchId;
    }

    public String getResult() {
        return result;
    }

    public void setResult(String result) {
        this.result = result;
    }

    public Integer getSalePlanId() {
        return salePlanId;
    }

    public void setSalePlanId(Integer salePlanId) {
        this.salePlanId = salePlanId;
    }

    public Byte getMemberType() {
        return memberType;
    }

    public void setMemberType(Byte memberType) {
        this.memberType = memberType;
    }

    public Byte getUseType() {
        return useType;
    }

    public void setUseType(Byte useType) {
        this.useType = useType;
    }

    public Byte getBusinessType() {
        return businessType;
    }

    public void setBusinessType(Byte businessType) {
        this.businessType = businessType;
    }

    public Integer getTicketCount() {
        return ticketCount;
    }

    public void setTicketCount(Integer ticketCount) {
        this.ticketCount = ticketCount;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public Byte getPlatform() {
        return platform;
    }

    public void setPlatform(Byte platform) {
        this.platform = platform;
    }

    public Integer getServiceSwitch() {
        return serviceSwitch;
    }

    public void setServiceSwitch(Integer serviceSwitch) {
        this.serviceSwitch = serviceSwitch;
    }

    public BigDecimal getDebit() {
        return debit;
    }

    public void setDebit(BigDecimal debit) {
        this.debit = debit;
    }
}
